package com.the_last.pojo.dto;

import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.util.List;

/**
 * 增量角色权限分配DTO
 * 用于精确控制角色权限的增加和删除操作
 */
@Data
public class IncrementalRolePermissionDTO {
    
    @NotNull(message = "角色ID不能为空")
    private Long roleId;
    
    /**
     * 需要添加的权限ID列表
     * 如果为null或空，表示不进行权限添加操作
     */
    private List<Long> addPermissionIds;
    
    /**
     * 需要移除的权限ID列表
     * 如果为null或空，表示不进行权限移除操作
     */
    private List<Long> removePermissionIds;
    
    /**
     * 检查是否有有效的操作
     * @return 如果有添加或删除操作返回true
     */
    public boolean hasValidOperation() {
        return (addPermissionIds != null && !addPermissionIds.isEmpty()) || 
               (removePermissionIds != null && !removePermissionIds.isEmpty());
    }
    
}